/*
* Conditions Of Use
*
* This software was developed by employees of the Sigmatrix(Beijing) Corporation.
* This software is provided by sigmatrix as a service and is expressly
* provided "AS IS."  Sigmatrix MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
* AND DATA ACCURACY.  Sigmatrix does not warrant or make any representations
* regarding the use of the software or the results thereof, including but
* not limited to the correctness, accuracy, reliability or usefulness of
* the software.
*
* Permission to use this software is contingent upon your acceptance
* of the terms of this agreement.
*
*/
package com.sigmatrix.h5.web.vo;

import java.util.ArrayList;
import java.util.List;

import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModelProperty;

/**
 *@ClassName: OutStorageVo
 *@Description: 出库单接口参数
 *@author youjun
 *@date 2017年6月22日 下午8:29:00
 */
public class OutStorageVo extends PageVo {

	/**
	 *@Fields serialVersionUID : TODO()
	 */
	private static final long serialVersionUID = 6267464066755486613L;
	
	/**出库单ID*/
	@ApiModelProperty(value="出库单ID,修改时使用")
	private Long outStorageId;
	
	/**出库单号*/
	@ApiModelProperty(value="出库单号")
	private String orderCode;

	/**经销商ID*/
	@ApiModelProperty(value="经销商ID")
	private Integer dealerId;

	/**出库仓库ID*/
	@ApiModelProperty(value="出库仓库")
    private Integer warehouseId;
	
	/**出库仓库名称*/
	@ApiModelProperty(value="出库仓库名称")
    private String warehouseName;
    
    /**请求的出库类型:1-销售出库,2-返工出库,3-调拨出库,4-其他出库*/
	@ApiModelProperty(value="出库单类型:1-销售出库,3-调拨出库,4-其他出库")
    @NotNull(message="出库单类型不能为空")
    private Short channelType;
    
	@ApiModelProperty(value="备注")
    private String remarks;
	
	private Short status;
    
    /**出库单来源,1-终端手持机,2-系统平台,3-第三方ERP,若不传递,则保存为1*/
	/*@ApiModelProperty(value="出库单来源,1-终端手持机,2-系统平台,3-第三方ERP,默认为1")
    private Short source;*/
    
    /**入库仓库*/
	@ApiModelProperty(value="目标仓库，入库仓库")
	private Integer entryWarehouseId;
	
    /**经销商*/
	@ApiModelProperty(value="目标经销商，收货经销商")
    private Integer delegatedDealerId;
	
	@ApiModelProperty(value="创建时间-开始")
	private String createTimeStart;
	
	@ApiModelProperty(value="创建时间-结束")
	private String createTimeEnd;
	
	/**出库单详情单*/
	@ApiModelProperty(value="出库单详情单")
	private List<OutStorageDetailVo> detailList = new ArrayList<OutStorageDetailVo>();

	@ApiModelProperty(value="异步任务号")
	private Integer syncTaskId;
	
	@ApiModelProperty(value="客户类型:2-经销商，3-终端门店")
	private Short customerType;
	
	/**
	 *@return the dealerId
	 */
	public Integer getDealerId() {
		return dealerId;
	}

	/**
	 *@param dealerId the dealerId to set
	 */
	public void setDealerId(Integer dealerId) {
		this.dealerId = dealerId;
	}

	/**
	 *@return the warehouseId
	 */
	public Integer getWarehouseId() {
		return warehouseId;
	}

	/**
	 *@param warehouseId the warehouseId to set
	 */
	public void setWarehouseId(Integer warehouseId) {
		this.warehouseId = warehouseId;
	}

	/**
	 *@return the channelType
	 */
	public Short getChannelType() {
		return channelType;
	}

	/**
	 *@param channelType the channelType to set
	 */
	public void setChannelType(Short channelType) {
		this.channelType = channelType;
	}

	/**
	 *@return the remarks
	 */
	public String getRemarks() {
		return remarks;
	}

	/**
	 *@param remarks the remarks to set
	 */
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	/**
	 *@return the detailList
	 */
	public List<OutStorageDetailVo> getDetailList() {
		return detailList;
	}

	/**
	 *@param detailList the detailList to set
	 */
	public void setDetailList(List<OutStorageDetailVo> detailList) {
		this.detailList = detailList;
	}

	/**
	 *@return the createTimeStart
	 */
	public String getCreateTimeStart() {
		return createTimeStart;
	}

	/**
	 *@param createTimeStart the createTimeStart to set
	 */
	public void setCreateTimeStart(String createTimeStart) {
		this.createTimeStart = createTimeStart;
	}

	/**
	 *@return the createTimeEnd
	 */
	public String getCreateTimeEnd() {
		return createTimeEnd;
	}

	/**
	 *@param createTimeEnd the createTimeEnd to set
	 */
	public void setCreateTimeEnd(String createTimeEnd) {
		this.createTimeEnd = createTimeEnd;
	}

	/**
	 *@return the outStorageId
	 */
	public Long getOutStorageId() {
		return outStorageId;
	}

	/**
	 *@param outStorageId the outStorageId to set
	 */
	public void setOutStorageId(Long outStorageId) {
		this.outStorageId = outStorageId;
	}

	/**
	 *@return the status
	 */
	public Short getStatus() {
		return status;
	}

	/**
	 *@param status the status to set
	 */
	public void setStatus(Short status) {
		this.status = status;
	}

	/**
	 *@return the orderCode
	 */
	public String getOrderCode() {
		return orderCode;
	}

	/**
	 *@param orderCode the orderCode to set
	 */
	public void setOrderCode(String orderCode) {
		this.orderCode = orderCode;
	}

	public Integer getEntryWarehouseId() {
		return entryWarehouseId;
	}

	public void setEntryWarehouseId(Integer entryWarehouseId) {
		this.entryWarehouseId = entryWarehouseId;
	}
	

	public Integer getDelegatedDealerId() {
		return delegatedDealerId;
	}

	public void setDelegatedDealerId(Integer delegatedDealerId) {
		this.delegatedDealerId = delegatedDealerId;
	}

	public String getWarehouseName() {
		return warehouseName;
	}

	public void setWarehouseName(String warehouseName) {
		this.warehouseName = warehouseName;
	}

	public Integer getSyncTaskId() {
		return syncTaskId;
	}

	public void setSyncTaskId(Integer syncTaskId) {
		this.syncTaskId = syncTaskId;
	}

	public Short getCustomerType() {
		return customerType;
	}

	public void setCustomerType(Short customerType) {
		this.customerType = customerType;
	}
	
	
}
